package ast;


import java.util.ArrayList;

import org.antlr.runtime.Token;

import ast.terminais.Identifier;

public class Declaracao_procedimento extends Declaracao {
	 
    
	public Declaracao_procedimento(Token payload) {
		super(payload);
	}
	
	public Identifier getId1() {
		return (Identifier) getChild(0);
	}
	
	//Duvida porque poder retorna null;
	public Lista_parametros getLista_parametros() {
		for (Object node : getChildren()) {
			if(node instanceof Lista_parametros){
				return (Lista_parametros)node;
			}
		}
		return null;
	}
	
	public ArrayList<Declaracao_variaveis> getDeclaracao_variaveis() {
		ArrayList<Declaracao_variaveis> result = new ArrayList<Declaracao_variaveis>();
		
		for (Object node : getChildren()) {
			if(node instanceof Declaracao_variaveis){
				Declaracao_variaveis decl = (Declaracao_variaveis) node;
				result.add(decl);
				
			}
		}
		return result;
	}
	
	public Corpo getCorpo() {
		for (Object node : getChildren()) {
			if(node instanceof Corpo){
				return (Corpo)node;
			}
		}
		return null;
	}
	
	public Identifier getId2() {
		
		return (Identifier) getChild(getChildren().size()-1);
	}

	@Override
	public Object accept(IVisitor visitor, Object o) {
		// TODO Auto-generated method stub
		return visitor.visit(this, o);
	}

}
